Image retrieval based on relevance feedback

ABSTRACT

An improved image retrieval process based on relevance feedback uses a hierarchical (per-feature) approach in comparing images. Multiple query vectors are generated for an initial image by extracting multiple low-level features from the initial image. When determining how closely a particular image in an image collection matches the initial image, a distance is calculated between the query vectors and corresponding low-level feature vectors extracted from the particular image. Once these individual distances are calculated, they are combined to generate an overall distance that represents how closely the two images match. According to other aspects, relevancy feedback received regarding previously retrieved images is used during the query vector generation and the distance determination to influence which images are subsequently retrieved.

RELATED APPLICATIONS

This application claims priority under 35 U.S.C. §120 as a continuationof U.S. patent application Ser. No. 09/660,536, filed, Sep. 13, 2000,which claims the benefit of U.S. Provisional Application No. 60/153,730,filed Sep. 13, 1999, entitled “MPEG-7 Enhanced Multimedia Access” toYong Rui, Jonathan Grudin, Anoop Gupta, and Liwei He, which are bothhereby incorporated by reference.

TECHNICAL FIELD

This invention relates to image storage and retrieval, and moreparticularly to retrieving images based on relevance feedback.

BACKGROUND OF THE INVENTION

Computer technology has advanced greatly in recent years, allowing theuses for computers to similarly grow. One such use is the storage ofimages. Databases of images that are accessible to computers areconstantly expanding and cover a wide range of areas, including stockimages that are made commercially available, images of art collections(e.g., by museums), etc. However, as the number of such images beingstored has increased, so too has the difficulty in managing theretrieval of such images. Often times it is difficult for a user tosearch databases of such images to identify selected ones of thethousands of images that are available.

One difficulty in searching image databases is the manner in whichimages are stored versus the manner in which people think about and viewimages. It is possible to extract various low-level features regardingimages, such as the color of particular portions of an image and shapesidentified within an image, and make those features available to animage search engine. However, people don't tend to think of images usingsuch low-level features. For example, a user that desires to retrieveimages of brown dogs would typically not be willing and/or able to inputsearch parameters identifying the necessary color codes and particularareas including those color codes, plus whatever low-level shapefeatures are necessary to describe the shape of a dog in order toretrieve those images. Thus, there is currently a significant gapbetween the capabilities provided by image search engines and theusability desired by people using such engines.

One solution is to provide a text-based description of images. Inaccordance with this solution, images are individually and manuallycategorized by people, and various descriptive words for each image areadded to a database. For example, a picture of a brown dog licking asmall boy's face may include key words such as dog, brown, child, laugh,humor, etc. There are, however, problems with this solution. One suchproblem is that it requires manual categorization—an individual(s) musttake the time to look at a picture, decide which key words to includefor the picture, and record those key words. Another problem is thatsuch a process is subjective. People tend to view images in differentways, viewing shapes, colors, and other features differently. With sucha manual process, the key words will be skewed towards the way theindividual cataloging the images views the images, and thus differentfrom the way many other people will view the images.

The invention described below addresses these disadvantages, providingfor improved image retrieval based on relevance feedback.

SUMMARY OF THE INVENTION

Improved image retrieval based on relevance feedback is describedherein.

According to one aspect, a hierarchical (per-feature) approach is usedin comparing images. Multiple query vectors are generated for an initialimage by extracting multiple low-level features from the initial image.When determining how closely a particular image in an image collectionmatches that initial image, a distance is calculated between the queryvectors and corresponding low-level feature vectors extracted from theparticular image. Once these individual distances are calculated, theyare combined to generate an overall distance that represents how closelythe two images match.

According to another aspect, when a set of potentially relevant imagesare presented to a user, the user is given the opportunity to providefeedback regarding the relevancy of the individual images in the set.This relevancy feedback is then used to generate a new set ofpotentially relevant images for presentation to the user. The relevancyfeedback is used to influence the generation of the query vector,influence the weights assigned to individual distances between queryvectors and feature vectors when generating an overall distance, and toinfluence the determination of the distances between the query vectorsand the feature vectors.

According to another aspect, the calculation of a distance between aquery vector and a feature vector involves the use of a matrix to weightthe individual vector elements. The type of matrix used variesdynamically based on the number of images for which feedback has beenreceived from the user and the number of feature elements in the featurevector. If the number of images for which feedback has been received isless than the number of feature elements, then a diagonal matrix is used(which assigns weights to the individual vector elements in the distancecalculation). However, if the number of images for which feedback hasbeen received equals or exceeds the number of feature elements, then afull matrix is used (which transforms the low-level features of thequery vector and the feature vector to a higher level feature space, aswell as assigns weights to the individual transformed elements in thedistance calculation).

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention is illustrated by way of example and notlimitation in the figures of the accompanying drawings. The same numbersare used throughout the figures to reference like components and/orfeatures.

FIG. 1 is a block diagram illustrating an exemplary network environmentsuch as may be used in accordance with certain embodiments of theinvention.

FIG. 2 illustrates an example of a suitable operating environment inwhich the invention may be implemented.

FIG. 3 is a block diagram illustrating an exemplary image retrievalarchitecture in accordance with certain embodiments of the invention.

FIG. 4 is a flowchart illustrating an exemplary process, from theperspective of a client, for using relevance feedback to retrieveimages.

FIG. 5 is a flowchart illustrating an exemplary process, from theperspective of an image server, for using relevance feedback to retrieveimages.

DETAILED DESCRIPTION

FIG. 1 is a block diagram illustrating an exemplary network environmentsuch as may be used in accordance with certain embodiments of theinvention. In the network environment 100 of FIG. 1, an image server 102is coupled to one or more image collections 104. Each image collectionstores one or more images of a wide variety of types. In oneimplementation, the images are still images, although it is to beappreciated that other types of images can also be used with theinvention. For example, each frame of moving video can be treated as asingle still image. Image collections 104 may be coupled directly toimage server 102, incorporated into image server 102, or alternativelyindirectly coupled to image server 102 such as via a network 106.

Also coupled to image server 102 is one or more client devices 108.Client devices 108 may be coupled to image server 102 directly oralternatively indirectly (such as via network 106). Image server 102acts as an interface between clients 108 and image collections 104.Image server 102 allows clients 108 to retrieve images from imagecollections 104 and render those images. Users of clients 108 can theninput relevance feedback, which is returned to image server 102 and usedto refine the image retrieval process, as discussed in more detailbelow.

Network 106 represents any of a wide variety of wired and/or wirelessnetworks, including public and/or private networks (such as theInternet, local area networks (LANs), wide area networks (WANs), etc.).A client 108, image server 102, or image collection 104 can be coupledto network 106 in any of a wide variety of conventional manners, such aswired or wireless modems, direct network connections, etc.

Communication among devices coupled to network 106 can be accomplishedusing one or more protocols. In one implementation, network 106 includesthe Internet. Information is communicated among devices coupled to theInternet using, for example, the well-known Hypertext Transfer Protocol(HTTP), although other protocols (either public and/or proprietary)could alternatively be used.

FIG. 2 illustrates an example of a suitable operating environment inwhich the invention may be implemented. The illustrated operatingenvironment is only one example of a suitable operating environment andis not intended to suggest any limitation as to the scope of use orfunctionality of the invention. Other well known computing systems,environments, and/or configurations that may be suitable for use withthe invention include, but are not limited to, personal computers,server computers, hand-held or laptop devices, multiprocessor systems,microprocessor-based systems, programmable consumer electronics (e.g.,digital video recorders), gaming consoles, cellular telephones, networkPCs, minicomputers, mainframe computers, distributed computingenvironments that include any of the above systems or devices, and thelike.

FIG. 2 shows a general example of a computer 142 that can be used inaccordance with the invention. Computer 142 is shown as an example of acomputer that can perform the functions of client 108 or server 102 ofFIG. 1. Computer 142 includes one or more processors or processing units144, a system memory 146, and a bus 148 that couples various systemcomponents including the system memory 146 to processors 144.

The bus 148 represents one or more of any of several types of busstructures, including a memory bus or memory controller, a peripheralbus, an accelerated graphics port, and a processor or local bus usingany of a variety of bus architectures. The system memory 146 includesread only memory (ROM) 150 and random access memory (RAM) 152. A basicinput/output system (BIOS) 154, containing the basic routines that helpto transfer information between elements within computer 142, such asduring start-up, is stored in ROM 150. Computer 142 further includes ahard disk drive 156 for reading from and writing to a hard disk, notshown, connected to bus 148 via a hard disk drive interface 157 (e.g., aSCSI, ATA, or other type of interface); a magnetic disk drive 158 forreading from and writing to a removable magnetic disk 160, connected tobus 148 via a magnetic disk drive interface 161; and an optical diskdrive 162 for reading from and/or writing to a removable optical disk164 such as a CD ROM, DVD, or other optical media, connected to bus 148via an optical drive interface 165. The drives and their associatedcomputer-readable media provide nonvolatile storage of computer readableinstructions, data structures, program modules and other data forcomputer 142. Although the exemplary environment described hereinemploys a hard disk, a removable magnetic disk 160 and a removableoptical disk 164, it will be appreciated by those skilled in the artthat other types of computer readable media which can store data that isaccessible by a computer, such as magnetic cassettes, flash memorycards, random access memories (RAMs), read only memories (ROM), and thelike, may also be used in the exemplary operating environment.

A number of program modules may be stored on the hard disk, magneticdisk 160, optical disk 164, ROM 150, or RAM 152, including an operatingsystem 170, one or more application programs 172, other program modules174, and program data 176. A user may enter commands and informationinto computer 142 through input devices such as keyboard 178 andpointing device 180. Other input devices (not shown) may include amicrophone, joystick, game pad, satellite dish, scanner, or the like.These and other input devices are connected to the processing unit 144through an interface 168 that is coupled to the system bus (e.g., aserial port interface, a parallel port interface, a universal serial bus(USB) interface, etc.). A monitor 184 or other type of display device isalso connected to the system bus 148 via an interface, such as a videoadapter 186. In addition to the monitor, personal computers typicallyinclude other peripheral output devices (not shown) such as speakers andprinters.

Computer 142 operates in a networked environment using logicalconnections to one or more remote computers, such as a remote computer188. The remote computer 188 may be another personal computer, a server,a router, a network PC, a peer device or other common network node, andtypically includes many or all of the elements described above relativeto computer 142, although 11 only a memory storage device 190 has beenillustrated in FIG. 2. The logical connections depicted in FIG. 2include a local area network (LAN) 192 and a wide area network (WAN)194. Such networking environments are commonplace in offices,enterprise-wide computer networks, intranets, and the Internet. Incertain embodiments of the invention, computer 142 executes an InternetWeb browser program (which may optionally be integrated into theoperating system 170) such as the “Internet Explorer” Web browsermanufactured and distributed by Microsoft Corporation of Redmond, Wash.

When used in a LAN networking environment, computer 142 is connected tothe local network 192 through a network interface or adapter 196. Whenused in a WAN networking environment, computer 142 typically includes amodem 198 or other means for establishing communications over the widearea network 194, such as the Internet. The modem 198, which may beinternal or external, is connected to the system bus 148 via a serialport interface 168. In a networked environment, program modules depictedrelative to the personal computer 142, or portions thereof, may bestored in the remote memory storage device. It will be appreciated thatthe network connections shown are exemplary and other means ofestablishing a communications link between the computers may be used.

Computer 142 also includes a broadcast tuner 200. Broadcast tuner 200receives broadcast signals either directly (e.g., analog or digitalcable transmissions fed directly into tuner 200) or via a receptiondevice (e.g., via antenna 110 or satellite dish 114 of FIG. 1).

Computer 142 typically includes at least some form of computer readablemedia. Computer readable media can be any available media that can beaccessed by computer 142. By way of example, and not limitation,computer readable media may comprise computer storage media andcommunication media. Computer storage media includes volatile andnonvolatile, removable and non-removable media implemented in any methodor technology for storage of information such as computer readableinstructions, data structures, program modules or other data. Computerstorage media includes, but is not limited to, RAM, ROM, EEPROM, flashmemory or other memory technology, CD-ROM, digital versatile disks (DVD)or other optical storage, magnetic cassettes, magnetic tape, magneticdisk storage or other magnetic storage devices, or any other media whichcan be used to store the desired information and which can be accessedby computer 142. Communication media typically embodies computerreadable instructions, data structures, program modules or other data ina modulated data signal such as a carrier wave or other transportmechanism and includes any information delivery media. The term“modulated data signal” means a signal that has one or more of itscharacteristics set or changed in such a manner as to encode informationin the signal. By way of example, and not limitation, communicationmedia includes wired media such as wired network or direct-wiredconnection, and wireless media such as acoustic, RF, infrared and otherwireless media. Combinations of any of the above should also be includedwithin the scope of computer readable media.

The invention has been described in part in the general context ofcomputer-executable instructions, such as program modules, executed byone or more computers or other devices. Generally, program modulesinclude routines, programs, objects, components, data structures, etc.that perform particular tasks or implement particular abstract datatypes. Typically the functionality of the program modules may becombined or distributed as desired in various embodiments.

For purposes of illustration, programs and other executable programcomponents such as the operating system are illustrated herein asdiscrete blocks, although it is recognized that such programs andcomponents reside at various times in different storage components ofthe computer, and are executed by the data processor(s) of the computer.

Alternatively, the invention may be implemented in hardware or acombination of hardware, software, and/or firmware. For example, one ormore application specific integrated circuits (ASICs) could be designedor programmed to carry out the invention.

FIG. 3 is a block diagram illustrating an exemplary image retrievalarchitecture in accordance with certain embodiments of the invention.The image retrieval architecture 220 illustrated in FIG. 3 isimplemented, for example, in an image server 102 of FIG. 1. Architecture220 includes a query vector generator 222, a comparator 224, multipleimages 226 and corresponding low-level image features 228, and an imageretriever 230.

Multiple low-level features are extracted for each image 226. Thesefeatures are described as being extracted prior to the image retrievalprocess discussed herein, although the features could alternatively beextracted during the image retrieval process. Each feature is a vector(referred to as a feature vector) that includes multiple featureelements. The number of feature elements in a feature vector can vary ona per-feature basis.

Low-level image features 228 can include any of a wide variety ofconventional features, such as: color moment features, color histogramfeatures, 11 wavelet texture features, Fourier descriptor features,water-fill edge features, etc. In one implementation, low-level features228 include three features: a color moments feature, a wavelet basedtexture feature, and a water-fill edge feature. The color momentsfeature is a 6-element vector obtained by extracting the mean andstandard deviation from three color channels in the HSV (hue,saturation, value) color space. The wavelet based texture feature is a10-element vector obtained by a wavelet filter bank decomposing theimage into 10 de-correlated sub-bands, with each sub-band capturing thecharacteristics of a certain scale and orientation of the originalimage. The standard deviation of the wavelet coefficients for eachsub-band is extracted, and these standard deviations used as theelements of the feature vector. The water-fill edge feature is an18-element vector that is obtained by extracting 18 different elementsfrom the edge maps: the maximum filling time and associated fork count,the maximum fork count and associated filing time, the filling timehistogram for each of seven bins (ranges of values), and the fork counthistogram for each of seven bins. For additional information regardingthe water-fill edge feature can be found in Xiang Sean Zhou, Yong Rui,and Thomas S. Huang, “Water-Filling: A Novel Way for Image StructuralFeature Extraction”, Proc. of IEEE International Conference on ImageProcessing, Kobe, Japan, October 1999, which is hereby incorporated byreference.

Low-level image features 228 can be stored and made accessible in any ofa wide variety of formats. In one implementation, the low-level features228 are generated and stored in accordance with the MPEG-7 (MovingPictures Expert Group) format. The MPEG-7 format standardizes a set ofDescriptors (Ds) that can be used to describe various types ofmultimedia content, as well as a set of Description Schemes (DSs) tospecify the structure of the Ds and their relationship. In MPEG-7, theindividual features 228 are each described as one or more Descriptors,and the combination of features is described as a Description Scheme.

During the image retrieval process, search criteria in the form a of aninitial image selection 232 is input to query vector generator 222. Theinitial image selection 232 can be in any of a wide variety of forms.For example, the initial image may be an image chosen from images 226 inaccordance with some other retrieval process (e.g., based on adescriptive keyword search), the image may be an image that belongs tothe user and is not included in images 226, etc. The initial selection232 may or may not include low-level features for the image. Iflow-level features that will be used by comparator 224 are not included,then those low-level features are generated by query vector generator222 based on initial selection 232 in a conventional manner. Note thatthese may be the same features as low-level image features 228, oralternatively a subset of the features 228. However, if the low-levelfeatures are already included, then query vector generator 222 need notgenerate them. Regardless of whether generator 222 generates thelow-level features for initial image selection 232, these low-levelfeatures are output by query vector generator 222 as query vectors 234.

Comparator 224 performs an image comparison based on the low-level imagefeatures 228 and the query vectors 234. This comparison includespossibly mapping both the low-level image features 228 and the queryvectors 234 to a higher level feature space and determining how closelythe transformed (mapped) features and query vectors match. Anidentification 236 of a set of potentially relevant images is thenoutput by comparator 224 to image retriever 230. The potentiallyrelevant images are those images that comparator 224 determines havelow-level image features 228 most closely matching the query vectors.Retriever 230 obtains the identified images from images 226 and returnsthose images to the requestor (e.g., a client 108 of FIG. 1) aspotentially relevant images 238.

A user is then able to provide relevance feedback 240 to query vectorgenerator 222. In one implementation, each of the potentially relevantimages 238 is displayed to the user at a client device along with acorresponding graphical “degree of relevance” slider. The user is ableto slide the slider along a slide bar ranging from, for example, “NotRelevant” to “Highly Relevant”. Each location along the slide bar thatthe slider can be positioned at by the user has a corresponding valuethat is returned to the generator 222 and comparator 224 andincorporated into their processes as discussed in more detail below. Inone implementation, if the user provides no feedback, then a defaultrelevancy feedback is assigned to the image (e.g., equivalent to “noopinion”). Alternatively, other user interface mechanisms may be used toreceive user feedback, such as radio buttons corresponding to multipledifferent relevancy feedbacks (e.g., Highly Relevant, Relevant, NoOpinion, Irrelevant, and Highly Irrelevant), verbal feedback (e.g., viaspeech recognition), etc.

The relevance feedback is used by query vector generator 222 to generatea new query vector and comparator 224 to identify a new set ofpotentially relevant images. The user relevance feedback 240 can benumeric values that are directly used by generator 222 and comparator224, such as: an integer or real value from zero to ten; an integer orreal value from negative five to positive five; values corresponding tohighly relevant, somewhat relevant, no opinion, somewhat irrelevant, andhighly irrelevant of 7, 3, 0, −3, and −7, respectively. Alternatively,the user relevance feedback 240 can be an indication in some otherformat (e.g., the text or encoding of “Highly Relevant”) and convertedto a useable numeric value by generator 222, comparator 224, and/oranother component (not illustrated).

The second set of potentially relevant images displayed to the user isdetermined by comparator 224 incorporating the relevance feedback 240received from the user into the comparison process. This process can berepeated any number of times, with the feedback provided each time beingused to further refine the image retrieval process.

Note that the components illustrated in architecture 220 may bedistributed across multiple devices. For example, low-level features 228may be stored locally at image server 102 of FIG. 1 (e.g., on a localhard drive) while images 226 may be stored at one or more remotelocations (e.g., accessed via network 106).

The image retrieval process discussed herein refers to several differenttypes of matrixes, including diagonal matrixes, full matrixes, and theidentity matrix. A diagonal matrix refers to a matrix that can have anyvalue along the diagonal, where the diagonal of a matrix B are theelements of the matrix at positions B_(jj), and values not along thediagonal are zero. The identity matrix is a special case of the diagonalmatrix where the elements of the matrix along the diagonal all have thevalue of one and all other elements in the matrix have a value of zero.A full matrix is a matrix in which any element can have any value. Thesedifferent types of matrixes are well-known to those skilled in the art,and thus will not be discussed further except as they pertain to thepresent invention.

The specific manner in which query vectors are generated, comparisonsare made, and relevance feedback is incorporated into both of theseprocesses will now be described. It is to be appreciated that thesespecific manners described are only examples of the processes and thatvarious modifications can be made to the these descriptions.

Each single image of the images 226 has multiple (I) correspondinglow-level features in the features 228. As used herein, {right arrowover (x)}_(mi) refers to the i^(th) feature vector of the m^(th) image,so:{right arrow over (x)} _(mi) =[x _(mi1) , . . . ,x _(mik) , . . . ,x_(miK) _(i) ]where K_(i) is the length of the feature vector {right arrow over(x)}_(mi).

A query vector is generated as necessary for each of the low-levelfeature spaces. The query vector is initially generated by extractingthe low-level feature elements in each of the feature spaces from theinitial selection 232. The query vector can be subsequently modified bythe relevance feedback 240, as discussed in more detail below. The queryvector in a feature space i is:{right arrow over (q)} _(i) =[q _(il) , . . . ,q _(ik) , . . . ,q _(ik)_(i) ]

To compare the query vector ({right arrow over (q)}_(i)) and acorresponding feature vector of an image m ({right arrow over(x)}_(mi)), the distance between the two vectors is determined. A widevariety of different distance metrics can be used, and in oneimplementation the generalized Euclidean distance is used. Thegeneralized Euclidean distance between the two vectors, referred to asg_(mi), is calculated as follows:g _(mi)=({right arrow over (q)} _(i) −{right arrow over (x)} _(mi))^(T)W _(i)({right arrow over (q)} _(i) −{right arrow over (x)} _(mi))where W_(i) is a matrix that both optionally transforms the low-levelfeature space into a higher level feature space and then assigns weightsto each feature element in the higher level feature space. Whensufficient data is available to perform the transformation, thelow-level feature space is transformed into a higher level feature spacethat better models user desired high-level concepts.

The matrix W_(i) can be decomposed as follows:W _(i) =P _(i) ^(T)Λ_(i) P _(i)where P_(i) is an orthonormal matrix consisting of the eigen vectors ofW_(i), and Λ_(i) is a diagonal matrix whose diagonal elements are theeigen values of W_(i). Thus, the calculation to determine the distanceg_(mi) can be rewritten as:g _(mi)=(P _(i)({right arrow over (q)} _(i) −{right arrow over (x)}_(mi)))^(T)Λ_(i)(P _(i)({right arrow over (q)} _(i) −{right arrow over(x)} _(mi)))where the low-level feature space is transformed into the higher levelfeature space by the mapping matrix P_(i) and then weights are assignedto the feature elements of the new feature space by the weighting matrixΛ_(i).

However, in some situations there may be insufficient data to reliablyperform the transformation into the higher level feature space. In suchsituations, the matrix W_(i) is simply the weighting matrix Λ_(i), sog_(mi) can be rewritten as:g _(mi)=({right arrow over (q)} _(i) −{right arrow over (x)}_(mi))^(T)Λ_(i)({right arrow over (q)} _(i) −{right arrow over (x)}_(mi)).

Typically, each of multiple (I) low-level feature vectors of images inthe database is compared to a corresponding query vector and theindividual distances between these vectors determined. Once all of the Ilow-level feature vectors have been compared to the corresponding queryvectors and distances determined, these distances are combined togenerate an overall distance d_(m), which is defined as follows:d _(m) =U(g _(mi))where U( ) is a function that combines the individual distances g_(mi)to form the overall distance d_(m). Thus, a hierarchical approach istaken to determining how closely two images match: first individualdistances between the feature vectors and the query vectors aredetermined, and then these individual distances are combined.

The function U( ) can be any of a variety of different combinatorialfunctions. In one implementation, the function U( ) is a weightedsummation of the individual distances, resulting in:

$d_{m} = {\sum\limits_{i = 1}^{I}\;{u_{i}\left\lbrack {\left( {{\overset{\rightarrow}{q}}_{i} - {\overset{\rightarrow}{x}}_{m\; i}} \right)^{T}{W_{i}\left( {{\overset{\rightarrow}{q}}_{i} - {\overset{\rightarrow}{x}}_{m\; i}} \right)}} \right\rbrack}}$The feature vectors of the individual images ({right arrow over(x)}_(mi)) are known (they are features 228). The additional valuesneeded to solve for the overall distance d_(m) are: the weights (u_(i))of each individual feature distance, the query vector ({right arrow over(q)}_(i)) for each feature, and the transformation matrix (W_(i)) foreach feature. For the first comparison (before any relevance feedback240 is received), each query vector ({right arrow over (q)}_(i)) issimply the corresponding extracted feature elements of the initialselection 232, the weights (u_(i)) of each individual distance are thesame (e.g., a value of 1/I, where I is the number of features used), andeach transformation matrix (W_(i)) is the identity matrix. Thedetermination of these individual values based on relevance feedback isdiscussed in more detail below.

Alternatively, the generalized Euclidean distance could also be used tocompute d_(m), as follows:d _(m) ={right arrow over (g)} _(mi) ^(T) U{right arrow over (g)} _(mi)where U is an (I×I) full matrix.

The overall distance d_(m) is thus calculated for each image 226.Alternatively, the overall distance d_(m) may be calculated for only asubset of images 226. Which subset of images 226 to use can beidentified in any of a variety of manners, such as using well-knownmulti-dimensional indexing techniques (e.g., R-tree or R*-tree).

A number of images 226 having the smallest distance d_(m) are thenselected as potentially relevant images to be presented to a user. Thenumber of images 226 can vary, and in one implementation is determinedempirically based on both the size of display devices typically beingused to view the images and the size of the images themselves. In oneimplementation, twenty images are returned as potentially relevant.

User relevance feedback 240 identifies degrees of relevance for one ormore of the potentially relevant images 238 (that is, a value indicatinghow relevant each of one or more of the images 238 is). A user mayindicate that only selected ones of the images 238 are relevant, anduser relevance feedback 240 identify degrees of relevance for only thoseselected images. Alternatively, user relevance feedback 240 may identifydegrees of relevance for all images 238, such as by assigning a defaultvalue to those images for which the user did not assign a relevancy.These default values (and corresponding image features) can then beignored by query vector generator 222 and comparator 224 (e.g., droppedfrom relevance feedback 240), or alternatively treated as user inputfeedback and used by vector generator 222 and comparator 224 whengenerating new values.

Once relevance feedback 240 is received, query vector generator 222generates new query vectors 234. The new query vectors are referred toas {right arrow over (q)}_(i)*, and are defined as follows:

${\overset{\rightarrow}{q}}_{i}^{*} = \frac{\overset{\rightarrow\; T}{\pi}X_{i}}{\sum\limits_{n = 1}^{N}\;\pi_{n}}$where N represents the number of potentially relevant images for whichthe user input relevance feedback (e.g., non-default relevance valueswere returned), which can be less than the number of potentiallyrelevant images that were displayed to the user (N may also be referredto as the number of training samples); π_(n) represents the degree ofrelevance of image n as indicated by the relevance feedback from theuser (that is, a degree of relevance value associated with the relevanceindicated by the user), {right arrow over (π)}^(T) represents a (1×N)vector of the individual π_(n) values, and X_(i) represents a trainingsample matrix for feature I that is obtained by stacking the N trainingvectors ({right arrow over (x)}_(ni)) into a matrix, and resulting in an(N×K_(i)) matrix.

Alternatively, N (both here and elsewhere in this discussion) mayrepresent the number of potentially relevant images for which relevancefeedback was received regardless of the source (e.g., including bothuser-input feedback and default relevance values).

The process of presenting potentially relevant images to a user andreceiving relevance feedback for at least portions of that set ofpotentially relevant images can be repeated multiple times. The resultsof each set of feedback can be saved and used for determining subsequentquery vectors (as well as the weights (u_(i)) of each individualdistance and each transformation matrix (W_(i))) in the process, oralternatively only a certain number of preceding sets of feedback may beused. For example, if three sets of twenty images each are presented toa user and relevance feedback returned for each image of the three sets,then to generate the fourth set the feedback from all sixty images maybe used. Alternatively, only the feedback from the most recent set oftwenty images may be used (or the two most recent sets, etc.).

Comparator 224 also receives relevance feedback 240 and uses relevancefeedback 240 to generate a new value for W_(i), which is referred to asW_(i)*. The value of W_(i)* is either a full matrix or a diagonalmatrix. When the number of potentially relevant images for which theuser input relevance feedback (N) is less than the length of the featurevector (K_(i)), the value of W_(i)* as a full matrix cannot becalculated (and is difficult to reliably estimate, if possible at all).Thus, in situations where N<K_(i), W_(i)* is a diagonal matrix;otherwise W_(i)* is a full matrix.

To generate the full matrix, W_(i)* is calculated as follows:

$W_{i}^{*} = {\left( {\det\left( C_{i} \right)} \right)^{\frac{1}{K_{i}}}C_{i}^{- 1}}$where det(C_(i)) is the matrix determinant of C_(i), and C_(i) is the(K_(i)×K_(i)) weighted covariance matrix of X_(i). In other words,

$C_{i_{rs}} = \frac{\sum\limits_{n = 1}^{N}\;{{\pi_{n}\left( {x_{n\; i\; r} - q_{i\; r}} \right)}\left( {x_{n\; i\; s} - q_{i\; s}} \right)}}{\sum\limits_{n = 1}^{N}\;\pi_{n}}$where r is the row index of the matrix C_(i) and ranges from 1 to K_(i),s is the column index of the matrix C_(i) and ranges from 1 to K_(i), Nrepresents the number of potentially relevant images for which the userinput relevance feedback, π_(n) represents the degree of relevance ofimage n, x_(nir) refers to the r^(th) element of the feature vector forfeature i of image n, q_(ir) refers to the r^(th) element of the queryvector for feature i, x_(nis) refers to the s^(th) element of thefeature vector for feature i of the n^(th)) image, and q_(is) refers tothe s^(th) element of the query vector for feature i.

To generate the diagonal matrix, each diagonal element of the matrix iscalculated as follows:

$w_{i_{k\; k}} = \frac{1}{\sigma_{i\; k}}$where w_(i) _(kk) is the kk^(th) element of matrix W_(i) and σ_(ik) isthe standard deviation of the sequence of x_(ik)'s, and where eachx_(ik) is the k^(th) element of feature i.

It should be noted that the determination of whether W_(i) is to be afull matrix or a diagonal matrix is done on a per-image basis as well asa per-feature basis for each image. Thus, depending on the length ofeach feature vector, W_(i) may be different types of matrixes fordifferent features.

It should also be noted that in situations where W_(i) is a diagonalmatrix, the distance (g_(mi)) between a query vector ({right arrow over(q)}_(i)) and a feature vector ({right arrow over (x)}_(mi)) is based onweighting the feature elements but not transforming the feature elementsto a higher level feature space. This is because there is aninsufficient number of training samples to reliably perform thetransformation. However, in situations where W_(i) is a full matrix, thedistance (g_(mi)) between a query vector ({right arrow over (q)}_(i))and a feature vector ({right arrow over (x)}_(mi)) is based on bothtransforming the low-level features to a higher level feature space andweighting the transformed feature elements.

Once relevance feedback 240 is received, comparator 224 also generates anew value for u_(i), which is referred to as u_(i)*, and is calculatedas follows:

$u_{i\;}^{*} = {\sum\limits_{j = 1}^{I}\;\sqrt{\frac{f_{j}}{f_{i}}}}$where

$f_{i} = {\sum\limits_{n = 1}^{N}\;{\pi_{n}g_{n\; i}}}$where N represents the number of potentially relevant images for whichthe user input relevance feedback, π_(n) represents the degree ofrelevance of image n, and g_(ni) (g_(mi) as discussed above) representsthe distance between the previous query vector ({right arrow over(q)}_(i)) and the feature vector ({right arrow over (x)}_(ni)).

FIG. 4 is a flowchart illustrating an exemplary process, from theperspective of a client, for using relevance feedback to retrieveimages. The process of FIG. 4 is carried out by a client 108 of FIG. 1,and can be implemented in software. FIG. 4 is discussed with referenceto components in FIGS. 1 and 3.

First, initial search criteria (e.g., an image) is entered by the user(act 260). The initial search criteria is used by image server 102 toidentify potentially relevant images 238 which are received (from server102) and rendered at client 108 (act 262) as the initial search results.The client then receives an indication from the user as to whether thesearch results are satisfactory. This indication can be direct (e.g.,selection of an on-screen button indicating that the results aresatisfactory or to stop the retrieval process) or indirect (e.g., inputof relevance feedback indicating that one or more of the images is notrelevant). If the search results are satisfactory, then the process ends(act 266).

However, if the search results are not satisfactory, then the relevanceof the search results is identified (act 268). The relevance of one ormore images in the search results is identified by user feedback (e.g.,user selection of one of multiple options indicating how relevant theimage is). A new search request that includes the relevance feedbackregarding the search results is then submitted to server 102 (act 270).In response to the search request, the server 102 generates new searchresults (based in part on the relevance feedback), which are received byclient 108 (act 272). The process then returns to act 264, allowing foradditional user relevance feedback as needed.

FIG. 5 is a flowchart illustrating an exemplary process, from theperspective of an image server, for using relevance feedback to retrieveimages. The process of FIG. 5 is carried out by an image server 102 ofFIG. 1, and can be implemented in software. FIG. 5 is discussed withreference to components in FIGS. 1 and 3.

To begin the image retrieval process, search criteria are received byimage server 102 (act 282) as initial selection 232, in response towhich generator 222 generates multiple query vectors (act 284).Comparator 224 then maps the low-level feature vectors of images inimage collection 104 to a higher level feature vector for each image andcompares the higher level feature vectors to the query vector (act 286).The images that most closely match the query vectors (based on thecomparison in act 286) are then identified (act 288), and forwarded tothe requesting client 108 (act 290). Alternatively, in some situationsthe mapping to the higher level feature space may not occur, and thecomparison and identification may be performed based on the low-levelfeature space.

Server 102 then receives user feedback from the requesting client 108regarding the relevance of one or more of the identified images (act292). Upon receipt of this relevance feedback, generator 222 generates anew query vector based in part on the relevance feedback and comparator224 uses the relevance feedback to generate a new transformation matrixand new feature distance weights (act 294). The process then returns toact 286, where the new mapping parameters and new query vector are usedto identify new images for forwarding to the client.

Conclusion

Although the description above uses language that is specific tostructural features and/or methodological acts, it is to be understoodthat the invention defined in the appended claims is not limited to thespecific features or acts described. Rather, the specific features andacts are disclosed as exemplary forms of implementing the invention.

1. A method comprising: generating a plurality of query vectors byextracting, for each query vector, one of a plurality of low-levelfeatures from an initial image selection; selecting a set of potentiallyrelevant images based at least in part on distances between theplurality of query vectors and a plurality of feature vectorscorresponding to low-level features of a plurality of images; receivingfeedback regarding the relevance of one or more images of the set ofpotentially relevant images; generating a new plurality of query vectorsbased at least in part on the feedback; generating a weighting offeature elements based at least in part on the feedback; and selecting anew set of potentially relevant images based at least in part on boththe weighting of feature elements and distances between the newplurality of query vectors and the plurality of feature vectors, whereinthe selecting a new set of potentially relevant images comprises using amatrix in determining the distance between one of the new plurality ofquery vectors and one of the plurality of feature vectors, and furthercomprising dynamically selecting the matrix based on both a number ofimages in the set of potentially relevant images for which relevancefeedback was input and a number of feature elements in the one featurevector if the number of images in the set of potentially relevant imagesfor which relevance feedback was input is not less than the number offeature elements in the one feature vector, then using one matrix thattransforms the query vector and the one feature vector to a higher-levelfeature space and then using another matrix that assigns a weight toeach element of the transformed query vector and the transformed featurevector, and if the number of images in the set of potentially relevantimages is less than the number of feature elements in the one featurevector, then using a matrix that assigns a weight to each element of thequery vector and the one feature vector, wherein at least a portion ofthe method is implemented in hardware.
 2. A method as recited in claim1, wherein the dynamically selecting comprises using a diagonal matrixif the number of images in the set of potentially relevant images forwhich relevance feedback was input is less than the number of featureelements in the one feature vector, and otherwise using a full matrix.3. A method as recited in claim 1, wherein the dynamically selectingcomprises: if the number of images in the set of potentially relevantimages for which relevance feedback was input is not less than thenumber of feature elements in the one feature vector, then using onematrix that transforms the query vector and the one feature vector to ahigher-level feature space and then using another matrix that assigns aweight to each element of the transformed query vector and thetransformed feature vector; and if the number of images in the set ofpotentially relevant images is less than the number of feature elementsin the one feature vector, then using a matrix that assigns a weight toeach element of the query vector and the one feature vector.
 4. A methodas recited in claim 1, wherein X represents an image matrix that isgenerated by stacking N feature vectors, each of length K, correspondingto the set of potentially relevant images for which relevance feedbackwas received and resulting in an (N×K) matrix, C represents a weightedcovariance matrix of X, det( C) represents the matrix determinant of C,and the matrix comprises a full matrix (W*) that is generated asfollows: $W^{*} = {\left( {\det\;(C)} \right)^{\frac{1}{K}}{C^{- 1}.}}$5. A method as recited in claim 4, wherein w_(kk) represents the kk^(th)element of matrix W, x_(k) represents the k^(th) feature element, σ_(k)represents the standard deviation of the sequence of x_(k)'s, the matrixcomprises a diagonal matrix with each diagonal element (w_(kk)) beinggenerated as follows: $w_{\;_{k\; k}} = {\frac{1}{\sigma_{\; k}}.}$ 6.One or more storage computer readable media comprising computerexecutable instructions that, when executed on a computer, direct thecomputer to: generate a query vector corresponding to a feature of oneimage; identify a feature vector corresponding to the feature of anotherimage; identify a number of training samples for which relevancefeedback has been received; if the number of training samples eitherequals or exceeds a threshold amount, then determine a distance betweenthe query vector and the feature vector including transforming the queryvector and the feature vector to a higher-level feature space and thenassigning a weight to each element of the transformed query vector andthe transformed feature vector; and if the number of training samplesdoes not exceed the threshold amount, then determine the distancebetween the query vector and the feature vector including assigning aweight to each element of the query vector and the feature vector. 7.One or more storage compute readable media as recited in claim 6,wherein the feature vector includes a plurality of feature elements andwherein the threshold amount comprises the number of feature elements inthe feature vector.
 8. One or more storage compute readable media asrecited in claim 6, wherein if the number of training samples eitherequals or exceeds the threshold amount, then determining the distance(g), where P is a mapping matrix, {right arrow over (q)} is the queryvector, {right arrow over (x)} is the feature vector, and Λ is aweighting matrix, as:g=(P({right arrow over (q)}−{right arrow over (x)}))^(T)Λ(P({right arrowover (q)}−{right arrow over (x)})).
 9. One or more storage computereadable media as recited in claim 6, wherein if the number of trainingsamples does not exceed the threshold amount, then determining thedistance (g), where {right arrow over (q)} is the query vector, {rightarrow over (x)} is the feature vector, and Λ is a weighting matrix, as:g=({right arrow over (q)}−{right arrow over (x)})^(T)Λ({right arrow over(q)}−{right arrow over (x)}).
 10. One or more storage compute readablemedia as recited in claim 6, further comprising: repeating thegenerating, identifying of the feature vector, identifying of the numberof training samples, and the determining for each of a plurality offeatures; and identifying how closely the image and the another imagematch each other by combining the distances between the query vectorsand the feature vectors for the plurality of features.
 11. One or morestorage compute readable media as recited in claim 6, wherein theidentifying how closely the image and the other image match each othercomprises calculating a weighted summation of each of the individualdistances for each of the plurality of features.
 12. One or more storagecomputer readable media comprising computer executable instructionsthat, when executed on a computer, direct the computer to for one of aplurality of images and each of a plurality of features: generating,based on a set of search criteria, a query vector for the feature,identifying a feature vector, corresponding to the image, for thefeature, wherein identifying the feature vector includes: identifying alow-level feature vector corresponding to the feature; and mapping thelow-level feature vector to a higher level feature space; determininghow closely the feature vector matches the query vector; and determininghow closely the image matches the set of search criteria based on howclosely, for the plurality of features, the feature vectors match thequery vectors, wherein generating the query vector comprises generatingthe query vector based at least in part on user relevance feedbackregarding how relevant images previously displayed to a user were. 13.One or more storage computer readable media as recited in claim 12,wherein the identifying the feature vector further comprisesincorporating, into the mapping, relevance feedback.
 14. One or morestorage computer readable media comprising computer executableinstruction that, when executed on a computer, direct the computer togenerate a weight to apply to distances between query vectors andfeature vectors when combining the distances, the method comprising:receiving feedback regarding the relevance of each image of a set ofimages; wherein f_(i) represents a summation, over the images in the setof images, of a product of a relevance of the image and a distancebetween the query vector and the feature vector; and generating a weight(u_(i)) for each of a plurality (I) of distances between a query vectorcorresponding to one of a plurality (I) of features and a feature vectorcorresponding to the one of the plurality (I) of features as:$u_{i\;} = {\sum\limits_{j = 1}^{I}\;{\sqrt{\frac{f_{j}}{f_{i}}}.}}$ 15.A system comprising: means for generating a query vector correspondingto a feature of one image; means for identifying a feature vectorcorresponding to the feature of another image; means for identifying anumber of training samples for which relevance feedback has beenreceived; means for determining, if the number of training sampleseither equals or exceeds a threshold amount, a distance between thequery vector and the feature vector including transforming the queryvector and the feature vector to a higher-level feature space and thenassigning a weight to each element of the transformed query vector andthe transformed feature vector; and means for determining, if the numberof training samples does not exceed the threshold amount, the distancebetween the query vector and the feature vector including assigning aweight to each element of the query vector and the feature vector.